package com.zzgc.common.utils;

import lombok.extern.slf4j.Slf4j;

import java.security.MessageDigest;

/**
 * MD5 加密
 * @Author: liglei
 * @CreateTime: 2022-11-17  16:45
 * @Description:
 * @Version: 1.0
 */
@Slf4j
public class MD5Util {

    /**
     *  密码加密加盐值 <字段名=密码>
     * @ClassName MD5Util
     * @Date 2022/11/17  16:55
     * @Version 1.0
     */
    public static String getMD5PWD(String pwd){
        return getMD5(String.format("%s=%s", "aPassword", pwd));
    }

    /**
     * MD5 加密
     * @param str
     * @return
     * @throws Exception
     */
    public static String getMD5(String str) {
        MessageDigest messageDigest = null;
        try {
            messageDigest = MessageDigest.getInstance("MD5");
            messageDigest.reset();
            messageDigest.update(str.getBytes("UTF-8"));
        } catch (Exception e) {
            log.error("MD5转换异常！",e);
        }

        byte[] byteArray = messageDigest.digest();
        StringBuffer md5StrBuff = new StringBuffer();
        for (int i = 0; i < byteArray.length; i++) {
            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
            else
                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
        }
        return md5StrBuff.toString();
    }
}
